import allure

#导入和该业务有关的N个页面类
from page.page_index import PageIndex
from page.page_login import PageLogin
from page.page_user import PageUser

#业务类：登录业务
class ServiceLogin(object):
    def __init__(self,driver,base_url):
        #接收script层传递来的driver
        self.driver=driver
        self.base_url=base_url
        # 初始化该业务有关的N个页面对象
        self.page_index =PageIndex(self.driver,self.base_url)
        self.page_login=PageLogin(self.driver,self.base_url)
        self.page_user=PageUser(self.driver,self.base_url)


    def service_login_001(self,d):
        #UI1页面上的操作
        allure.attach("","步骤1：打开网址")
        self.page_index.openUrl()
        allure.attach("", "步骤2：点击首页的登录按钮")
        self.page_index.click_login()

        #UI2页面上的操作
        allure.attach("", f"步骤3：输入账号:{d['zanhao']}")
        self.page_login.input_zanhao(d["zanhao"])
        allure.attach("", f"步骤4：输入密码:{d['pwd']}")
        self.page_login.input_pwd(d["pwd"])
        allure.attach("", f"步骤5：点击登录按钮")
        self.page_login.click_login()

        #UI3页面上的操作
        siji=self.page_user.getNicenText()

        #截图
        fileName=self.page_user.savePng("登录",d["key"])#"登录_K001_2024000xxx.png"
        allure.attach(open(f'./screen/{fileName}', 'rb').read(), "步骤6：本次截图", allure.attachment_type.PNG)
        return siji==d["yuqi"]


    def service_login_002(self,d):
        #UI1页面上的操作
        self.page_index.openUrl()
        self.page_index.click_login()

        #UI2页面上的操作
        self.page_login.input_zanhao(d["zanhao"])
        self.page_login.input_pwd(d["pwd"])
        self.page_login.click_login()

        #UI3页面上的操作
        siji=self.page_login.getErrorTipText()#"账号或密码错误"
        yuqi=d["yuqi"]#"错误"
        return yuqi in siji

    def service_login_003(self,d):
        #UI1页面上的操作
        self.page_index.openUrl()
        self.page_index.click_login()

        #UI2页面上的操作
        self.page_login.input_zanhao(d["zanhao"])
        self.page_login.input_pwd(d["pwd"])
        self.page_login.click_login()

        #UI3页面上的操作
        siji=self.page_login.getZanhaoClassAttr()
        return "invalid-text" in siji


    def service_login_004(self,d):
        #UI1页面上的操作
        self.page_index.openUrl()
        self.page_index.click_login()

        #UI2页面上的操作
        self.page_login.input_zanhao(d["zanhao"])
        self.page_login.input_pwd(d["pwd"])
        self.page_login.click_login()

        #UI3页面上的操作
        siji=self.page_login.getPwdClassAttr()
        return "invalid-text" in siji










